on:
  pull_request:
    # Run only if a file is changed within the project_euler directory and related files
    paths:
      - "project_euler/**"
      - ".github/workflows/project_euler.yml"
      - "scripts/validate_solutions.py"
  schedule:
    - cron: "0 0 * * *" # Run everyday

name: "Project Euler"

jobs:
  project-euler:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: 3.x
      - name: Install pytest and pytest-cov
        run: |
          python -m pip install --upgrade pip
          python -m pip install --upgrade numpy pytest pytest-cov
      - run: pytest --doctest-modules --cov-report=term-missing:skip-covered --cov=project_euler/ project_euler/
  validate-solutions:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: 3.x
      - name: Install pytest and requests
        run: |
          python -m pip install --upgrade pip
          python -m pip install --upgrade numpy pytest requests
      - run: pytest scripts/validate_solutions.py
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
